The present invention is related to network communications, and more particularly to control of multicast data unit transmission via a "Time To Live" designator.
Multicast transmission is employed in a communications network to transmit data units from a single source to a plurality of destinations. In particular, a single multicast transmission can be made in lieu of a plurality of unicast transmissions to destinations that are designated to receive identical data from the source. The multicast data unit is transmitted and then replicated as necessary by the network devices to provide copies for each destination. Replication of the multicast data unit may be postponed until the data unit reaches a network device that is nearer to the destination than the source, thereby conserving transmitter and network bandwidth.
Because each multicast transmission from the source device results in a plurality of data units being transmitted through portions of the network, it is particularly desirable to limit transmission beyond the intended destination devices. It is known in the art to employ a Time To Live ("TTL") hop count designator in the Internet Protocol ("IP") multicast data unit header to limit transmission of multicast data units beyond the intended destinations. Intermediate network devices are often coupled between the destination device and the source device. When the multicast data unit is received in a network device, the TTL hop count of the data unit is decremented. When the TTL hop count reaches zero, the data unit is discarded. Prior to transmission of a multicast data unit the source device calculates the number of respective intermediate devices, i.e., "hops," interposed between the source device and each destination device. The source device employs a single TTL designator value ("session TTL") for the multicast data unit. In particular, the session TTL is calculated to be sufficiently large to allow the multicast data unit to reach the destination device with the greatest number of intermediate devices interposed between it and the source device. Hence, after a predetermined number of hops the data unit is discarded and transmission of the multicast data unit beyond the destination devices is limited.
One problem associated with multicast transmission is inefficient operation. Multicast data units are typically afforded only low priority by intermediate network devices. Consequently, when an intermediate network device encounters operational difficulties, such as overflowing buffers, the multicast data units are candidates for early discard. Retransmission of lost or discarded data units, known in the art as "repair," may be requested by each destination device for each data unit delivery failure. However, transmission of multiple repair requests and corresponding repair data units between the source device and the destination devices is wasteful of network bandwidth.
Another problem associated with multicast operation is transmission failure due to inaccurate information regarding destination devices. Connectionless transmission protocols such as Unreliable Data Protocol ("UDP") are typically employed for multicast data units. In accordance with the connectionless transmission protocols, the destination device does not acknowledge receipt of a data unit. Consequently, the source device may not receive timely notification that a link between the source and destination has been altered in a manner which inhibits receipt of data units by the destination device.
It is known to employ a destination device as a "repair head" to retransmit lost data units. A standard destination device for a multicast transmission is associated with another destination device for the multicast transmission that serves as the repair head. Copies of multicast data units transmitted from the source device to the head destination device are retained in the head destination device. In the event that the standard destination device fails to receive a multicast data unit transmitted from the source device (which may also serve as a repair head), the standard destination device transmits a request for repair to the head destination device that is associated with that standard destination device. In response to the request for repair, a stored copy of the requested data unit ("repair data unit") is transmitted from the head destination device to the standard destination device. The TTL designator in the repair data unit, i.e., the "repair TTL," is set lower than the TTL designator in the original data unit transmitted by the source device, i.e., the "session TTL," in order to limit superfluous transmission of the repair data unit beyond the intended standard destination device.
Techniques such as Tree Based Multicast Protocol ("TMTP") and Scalable Multicast Protocol ("SRM") employ repair heads to make repairs. However, these techniques operate under an assumption that symmetrical paths exist between the head destination device and the standard destination device. In fact, the actual path configuration may be asymmetrical, i.e., the number of network devices along the path from the head destination device to the standard destination device may differ from the number of intermediate network devices along the path from the standard destination device to the head destination device. If the paths are assumed to be symmetrical and the actual path configuration is asymmetrical, the repair data unit may fail to reach the standard destination device that has requested the repair because the repair TTL value may not be large enough to enable the repair data unit to traverse all of the intermediate devices.